/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.cx1.service.api;

import java.util.List;
import org.cx1.model.Inquiry;
import org.cx1.model.Invite;
import org.cx1.model.utils.EmailInvitee;
import org.cx1.model.utils.Invitee;
import org.cx1.model.utils.MobileInvitee;
import org.cx1.model.utils.ServiceResponse;

/**
 *
 * @author ECH
 */
public interface IInviteService {
    
    public ServiceResponse<String> create(String name, String email, String type, String area);
    
    public ServiceResponse<List<Invite>> readll(int offset, int limit);
    
    public ServiceResponse<List<Invitee>> readAllInvitee(int offset, int limit);
        
    public ServiceResponse<String> createInvitee(Invitee invitee);
    
    public ServiceResponse<Boolean> deleteInvitee(String id);
            
    // Email Invitee 
   
    public ServiceResponse<List<EmailInvitee>> readAllEmailInvitee(int offset, int limit);
        
    public ServiceResponse<String> createEmailInvitee(EmailInvitee emailInvitee);
    
    public ServiceResponse<Boolean> deleteEmailInvitee(String id);
    
    public ServiceResponse<Boolean> deleteEmailInviteeByEmail(String id);
    
    public ServiceResponse<Boolean> deleteExisitingUsersInEmailInviteList();
    
    public ServiceResponse<Boolean> deleteDuplicatesInEmailInviteList();
    
    public ServiceResponse<List<EmailInvitee>> readEmailInviteesByProcessed(int offset, int limit, boolean processed);
    
    public ServiceResponse<Boolean> setEmailInviteeProcessed(String id, boolean processed);
    
    // Mobile Invitee 
    
    public ServiceResponse<List<MobileInvitee>> readAllMobileInvitee(int offset, int limit);
        
    public ServiceResponse<String> createMobileInvitee(MobileInvitee mobileInvitee);
    
    public ServiceResponse<Boolean> deleteMobileInvitee(String id);
    
    public ServiceResponse<Boolean> deleteMobileInviteeByMobile(String id);
            
    public ServiceResponse<List<MobileInvitee>> readMobileInviteesByProcessed(int offset, int limit, boolean processed);
    
    public ServiceResponse<Boolean> setMobileInviteeProcessed(String id, boolean processed);
    
}
